package com.shujia.day16;

import java.io.FileInputStream;
import java.io.InputStreamReader;

/*
        字符流：
        字符输入流：
            Reader【抽象类】
                - InputStreamReader【具体实现子类】
        字符输出流：
            Writer【抽象类】
                - OutputStreamWriter【具体实现子类】

       InputStreamReader：
            构造方法：
                InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。
                InputStreamReader(InputStream in, String charsetName) 创建一个使用命名字符集的InputStreamReader。
            成员方法：
                public int read()
                public int read(char[] cbuf)

 */
public class InputStreamReaderDemo1 {
    public static void main(String[] args) throws Exception {
//        InputStreamReader isr = new InputStreamReader(new FileInputStream("java/src/com/shujia/day16/a3.txt"));
        //InputStreamReader(InputStream in, String charsetName)
        InputStreamReader isr = new InputStreamReader(new FileInputStream("java/src/com/shujia/day16/a3.txt"), "GBK");


        // public int read() 一次都一个字符
//        System.out.print((char) isr.read());
//        System.out.print((char) isr.read());
//        int i = 0;
//        while ((i = isr.read()) != -1) {
//            System.out.print((char) i);
//        }

        //public int read(char[] cbuf) 一次读取一个字符数组
        char[] chars = new char[1024];
        int length = 0;
        while ((length= isr.read(chars))!=-1){
            String s = new String(chars, 0, length);
            System.out.print(s);
        }


        // 释放资源
        isr.close();
    }
}
